home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / ant_nec / nec_in_c.tz / nec_in_c / NEC2 / main.c < prev    next >
C/C++ Source or Header  |  1992-02-13  |  1KB  |  97 lines

  1. /* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
  2.  
  3. #include "stdio.h"
  4. #include "signal.h"
  5. #include "local.h"
  6.  
  7. #ifndef SIGIOT
  8. #define SIGIOT SIGABRT
  9. #endif
  10.  
  11. #ifdef NO__STDC
  12. #define ONEXIT onexit
  13. extern void f_exit();
  14. #else
  15. #ifdef __STDC__
  16. #include "stdlib.h"
  17. extern void f_exit(void);
  18. #ifndef NO_ONEXIT
  19. #define ONEXIT atexit
  20. extern int atexit(void (*)(void));
  21. #endif
  22. #else
  23. #ifndef NO_ONEXIT
  24. #define ONEXIT onexit
  25. extern void f_exit();
  26. #endif
  27. #endif
  28. #endif
  29.  
  30. extern void sig_die();
  31.  
  32. static void sigfdie(n)
  33. {
  34. sig_die("Floating Exception", 1);
  35. }
  36.  
  37.  
  38. static void sigidie(n)
  39. {
  40. sig_die("IOT Trap", 1);
  41. }
  42.  
  43. #ifdef SIGQUIT
  44. static void sigqdie(n)
  45. {
  46. sig_die("Quit signal", 1);
  47. }
  48. #endif
  49.  
  50.  
  51. static void sigindie(n)
  52. {
  53. sig_die("Interrupt", 0);
  54. }
  55.  
  56.  
  57.  
  58. static void sigtdie(n)
  59. {
  60. sig_die("Killed", 0);
  61. }
  62.  
  63.  
  64. int xargc;
  65. char **xargv;
  66.  
  67. main(argc, argv)
  68. int argc;
  69. char **argv;
  70. {
  71. xargc = argc;
  72. xargv = argv;
  73. signal(SIGFPE, sigfdie);    /* ignore underflow, enable overflow */
  74. signal(SIGIOT, sigidie);
  75. #ifdef SIGQUIT
  76. if(signal(SIGQUIT,sigqdie) == SIG_IGN)
  77.     signal(SIGQUIT, SIG_IGN);
  78. #endif
  79. if(signal(SIGINT, sigindie) == SIG_IGN)
  80.     signal(SIGINT, SIG_IGN);
  81. signal(SIGTERM,sigtdie);
  82.  
  83. #ifdef pdp11
  84.     ldfps(01200); /* detect overflow as an exception */
  85. #endif
  86.  
  87. f_init();
  88. #ifndef NO_ONEXIT
  89. ONEXIT(f_exit);
  90. #endif
  91. MAIN__();
  92. #ifdef NO_ONEXIT
  93. f_exit();
  94. #endif
  95. exit(0);    /* exit(0) rather than return(0) to bypass Cray bug */
  96. }
  97.